﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections;
using System.Collections.Generic;
using Croupier_iteration_1.Model.Jeu;

namespace Croupier_iteration_1.Model
{
    public class TableJeu
    {
        /// <summary>
        /// Identifiant de la table
        /// </summary>
        public int Id { get; private set; }

        /// <summary>
        /// Nom de la table
        /// </summary>
        public string Nom { get; set; }

        /// <summary>
        /// Croupier assis à la table
        /// </summary>
        public Croupier Croupier { get; private set; }

        /// <summary>
        /// Liste des joueurs assis à notre table
        /// </summary>
        public List<Joueur> Joueurs { get; private set; }

        /// <summary>
        /// Jeu de carte
        /// </summary>
        public Jeu.JeuDeCartes Jeu { get; private set; }


        public TableJeu()
        {
            // Initialise la liste de joueurs pour ne pas avoir une liste null mais une liste vide
            Joueurs = new List<Joueur>();
            Jeu = new Jeu.JeuDeCartes();
        }

        public TableJeu(int id, string nom, Croupier croupier, List<Joueur> joueurs, Jeu.JeuDeCartes jeu)
        {
            Id = id;
            Nom = nom;
            Croupier = croupier;
            Joueurs = joueurs;

            Jeu = jeu;
        }

        /// <summary>
        /// Ajouter un nouveau joueur sur notre table
        /// </summary>
        /// <param name="joueur"></param>
        public void AddJoueur(Joueur joueur)
        {
            Joueurs.Add(joueur);
        }

        /// <summary>
        /// Remplace le croupier actuel par un nouveau croupier
        /// </summary>
        /// <param name="croupier"></param>
        public void ChangeCroupier(Croupier croupier)
        {
            Croupier = croupier;
        }

        //DEMANDER une Carte
        public Carte DemanderCarte()
        {
            return Jeu.Tirer();
        }

        
    }
}
